import { getUseConfigFileFlag } from '../commonService';
import systemConfig from '../../../config/system.config.json';
// 是否使用配置文件（从配置文件中获取，默认为 true）
const USE_CONFIG_FILE = getUseConfigFileFlag();

/**
 * 用户信息模拟数据
 */
const DEFAULT_USER_INFO = {
  "UserId": "00000000-0000-0000-0000-000000000000",
  "Account": "demouser",
  "Account_Mask": null,
  "UserName": "用户名",
  "UserName_Mask": null,
  "Alias": "用户昵称",
  "Alias_Mask": null,
  "Skin": null,
  "Avatar": "/img/defaultAvatar.png",
  "Mobile": "13800138000",
  "Mobile_Mask": null,
  "EMail": "user@example.com",
  "Email_Mask": null,
  "CompanyId": "00000000-0000-0000-0000-000000000001",
  "DepartmentId": "00000000-0000-0000-0000-000000000002",
  "WorkGroupId": "00000000-0000-0000-0000-000000000003",
  "CustomerID": "",
  "Gender": "男",
  "BusiCustID": null,
  "ACCompanyID": null,
  "CompanyName": "用户公司",
  "DepartmentName": "用户部门",
  "WorkGroupName": "用户工作组",
  "BirthDay": "",
  "AreaCode": "86",
  "AccountBindList": null,
  "HasPassword": false,
  "AreaCodeAndMobile": null,
  "AreaCodeAndMobile_Mask": null,
  "UserMask": null
};

/**
 * 从配置文件加载用户信息
 * @returns {Object} 用户信息数据
 */
export function loadUserInfoFromConfig() {
  try {
    
    // 如果配置中有用户配置信息，则使用配置中的信息，并与默认值合并
    if (systemConfig && systemConfig.userProfileConfig && systemConfig.userProfileConfig.userInfo) {
      // 优先使用配置文件中的值，对于未配置的字段使用DEFAULT_USER_INFO中的值
      return { ...DEFAULT_USER_INFO, ...systemConfig.userProfileConfig.userInfo };
    }
    
    // 否则返回默认的模拟数据
    return DEFAULT_USER_INFO;
  } catch (error) {
    console.error('加载用户信息配置异常:', error);
    return DEFAULT_USER_INFO;
  }
}

// 根据USE_CONFIG_FILE决定使用配置文件还是原始mock数据
const configUserProfile = USE_CONFIG_FILE ? loadUserInfoFromConfig() : null;

// 导出用户信息，根据USE_CONFIG_FILE决定使用配置文件还是原始mock数据
export const mockUserProfile =  configUserProfile ? configUserProfile : DEFAULT_USER_INFO;